import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;

class Lecture
{ 
	public static Graphe lectureGraphe()
	{
		Graphe grapheEntree = new Graphe();

		// lecture du fichier texte 
		try { 
			InputStream ips = new FileInputStream("graphe_k5.dat");
			InputStreamReader ipsr = new InputStreamReader(ips); 
			BufferedReader br = new BufferedReader(ipsr); 
			String ligne; 
			int numLigne = 0;


			while ( (ligne = br.readLine()) != (null) && !(ligne.equals("END")) )
			{
				numLigne ++;

				// Ne lit pas les 5 premières lignes ne contenant pas les arretes
				if (numLigne < 5) {
					continue;
				}

				Noeud n1 = new Noeud();
				Noeud n2 = new Noeud();
				Noeud n3 = new Noeud();

				System.out.println(ligne);

				// ArrayList qui va contenir l'indice des espaces
				ArrayList<Integer> whiteSpace = new ArrayList<Integer>();
				int n = 0;

				for (char c : ligne.toCharArray()) {
					if (Character.isWhitespace(c)) {
						whiteSpace.add(n);
					}
					n++;
				}

				// indice des espaces
				int espace1 = whiteSpace.get(0);
				int espace2 = whiteSpace.get(1);

				// on récupère les valeurs des arrêtes et leur coût
				int a1 = Integer.parseInt(ligne.substring(0, espace1));
				int a2 = Integer.parseInt(ligne.substring(espace1 + 1, espace2));
				int a3 = Integer.parseInt(ligne.substring(espace2 + 1, ligne.length()));


				n1.setNbNoeud(a1);
				n2.setNbNoeud(a2);
				Arrete arr = new Arrete(n1,n2,a3);
				numLigne++;

				grapheEntree.addHeap(arr);
			}
			System.out.println(grapheEntree);

			br.close();
		}
		catch (Exception e) {
			System.out.println(e.toString());
		}

		return grapheEntree;
	}

}